<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- qquickevents.cpp -->
  <title>MouseEvent QML 类型 | Qt Quick 5.12.3</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.12</a></td><td ><a href="qtquick-index.html">Qt Quick 模块</a></td><td ><a href="qtquick-qmlmodule.html">QML类型</a></td><td >MouseEvent QML 类型</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtquick-index.html">Qt 5.12.3 参考指南</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">目录</a></h3>
<ul>
<li class="level1"><a href="#properties">属性</a></li>
<li class="level1"><a href="#details">详细信息</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">MouseEvent QML 类型</h1>
<span class="subtitle"></span>
<!-- $$$MouseEvent-brief -->
<p>Provides information about a mouse event. <a href="#details">更多...</a></p>
<!-- @@@MouseEvent -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> 导入语句：</td><td class="memItemRight bottomAlign"> import QtQuick 2.12</td></tr></table></div><ul>
<li><a href="qml-qtquick-mouseevent-members.html">所有成员的列表，包括继承成员</a></li>
</ul>
<a name="properties"></a>
<h2 id="properties">属性</h2>
<ul>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#accepted-prop">accepted</a></b></b> : bool</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#button-prop">button</a></b></b> : enumeration</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#buttons-prop">buttons</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#flags-prop">flags</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#modifiers-prop">modifiers</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#source-prop">source</a></b></b> : int</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#wasHeld-prop">wasHeld</a></b></b> : bool</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#x-prop">x</a></b></b> : real</li>
<li class="fn"><b><b><a href="qml-qtquick-mouseevent.html#y-prop">y</a></b></b> : real</li>
</ul>
<!-- $$$MouseEvent-description -->
<a name="details"></a>
<h2 id="details">详细信息</h2>
<p>The position of the mouse can be found via the <a href="qml-qtquick-item.html#x-prop">x</a> and <a href="qml-qtquick-item.html#y-prop">y</a> properties. The button that caused the event is available via the <a href="qml-qtquick-mouseevent.html#button-prop">button</a> property.</p>
<p><b>请参考 </b><a href="qml-qtquick-mousearea.html">MouseArea</a>。</p>
<!-- @@@MouseEvent -->
<h2>属性文档</h2>
<!-- $$$accepted -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="accepted-prop">
<td class="tblQmlPropNode"><p>
<a name="accepted-prop"></a><span class="name">accepted</span> : <span class="type"><a href="../qtqml/qml-bool.html">bool</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>Setting <i>accepted</i> to true prevents the mouse event from being propagated to items below this item.</p>
<p>Generally, if the item acts on the mouse event then it should be accepted so that items lower in the stacking order do not also respond to the same event.</p>
</div></div><!-- @@@accepted -->
<br/>
<!-- $$$button -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="button-prop">
<td class="tblQmlPropNode"><p>
<a name="button-prop"></a><span class="name">button</span> : <span class="type"><a href="../qtqml/qml-enumeration.html">enumeration</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the button that caused the event. It can be one of:</p>
<ul>
<li><a href="../qtcore/qt.html#MouseButton-enum">Qt.LeftButton</a></li>
<li><a href="../qtcore/qt.html#MouseButton-enum">Qt.RightButton</a></li>
<li><a href="../qtcore/qt.html#MouseButton-enum">Qt.MiddleButton</a></li>
</ul>
</div></div><!-- @@@button -->
<br/>
<!-- $$$buttons -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="buttons-prop">
<td class="tblQmlPropNode"><p>
<a name="buttons-prop"></a><span class="name">buttons</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the mouse buttons pressed when the event was generated. For mouse move events, this is all buttons that are pressed down. For mouse press and double click events this includes the button that caused the event. For mouse release events this excludes the button that caused the event.</p>
<p>It contains a bitwise combination of:</p>
<ul>
<li><a href="../qtcore/qt.html#MouseButton-enum">Qt.LeftButton</a></li>
<li><a href="../qtcore/qt.html#MouseButton-enum">Qt.RightButton</a></li>
<li><a href="../qtcore/qt.html#MouseButton-enum">Qt.MiddleButton</a></li>
</ul>
</div></div><!-- @@@buttons -->
<br/>
<!-- $$$flags -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="flags-prop">
<td class="tblQmlPropNode"><p>
<a name="flags-prop"></a><span class="name">flags</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the flags that provide additional information about the mouse event.</p>
<ul>
<li><a href="../qtcore/qt.html#MouseEventFlag-enum">Qt.MouseEventCreatedDoubleClick</a> - Indicates that Qt has created a double click event from this event. This flag is set in the event originating from a button press, and not in the resulting double click event.</li>
</ul>
<p>This property was introduced in  Qt 5.11.</p>
</div></div><!-- @@@flags -->
<br/>
<!-- $$$modifiers -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="modifiers-prop">
<td class="tblQmlPropNode"><p>
<a name="modifiers-prop"></a><span class="name">modifiers</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the keyboard modifier flags that existed immediately before the event occurred.</p>
<p>It contains a bitwise combination of:</p>
<ul>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.NoModifier</a> - No modifier key is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.ShiftModifier</a> - A Shift key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.ControlModifier</a> - A Ctrl key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.AltModifier</a> - An Alt key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.MetaModifier</a> - A Meta key on the keyboard is pressed.</li>
<li><a href="../qtcore/qt.html#KeyboardModifier-enum">Qt.KeypadModifier</a> - A keypad button is pressed.</li>
</ul>
<p>For example, to react to a Shift key + Left mouse button click:</p>
<pre class="qml">

  <span class="type"><a href="qml-qtquick-mousearea.html">MouseArea</a></span> {
      <span class="name">onClicked</span>: {
          <span class="keyword">if</span> ((<span class="name">mouse</span>.<span class="name">button</span> <span class="operator">==</span> <span class="name">Qt</span>.<span class="name">LeftButton</span>) <span class="operator">&amp;&amp;</span> (<span class="name">mouse</span>.<span class="name">modifiers</span> <span class="operator">&amp;</span> <span class="name">Qt</span>.<span class="name">ShiftModifier</span>))
              <span class="name">doSomething</span>();
      }
  }

</pre>
</div></div><!-- @@@modifiers -->
<br/>
<!-- $$$source -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="source-prop">
<td class="tblQmlPropNode"><p>
<a name="source-prop"></a><span class="name">source</span> : <span class="type"><a href="../qtqml/qml-int.html">int</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property holds the source of the mouse event.</p>
<p>The mouse event source can be used to distinguish between genuine and artificial mouse events. When using other pointing devices such as touchscreens and graphics tablets, if the application does not make use of the actual touch or tablet events, mouse events may be synthesized by the operating system or by Qt itself.</p>
<p>The value can be one of:</p>
<ul>
<li><a href="../qtcore/qt.html#MouseEventSource-enum">Qt.MouseEventNotSynthesized</a> - The most common value. On platforms where such information is available, this value indicates that the event represents a genuine mouse event from the system.</li>
<li><a href="../qtcore/qt.html#MouseEventSource-enum">Qt.MouseEventSynthesizedBySystem</a> - Indicates that the mouse event was synthesized from a touch or tablet event by the platform.</li>
<li><a href="../qtcore/qt.html#MouseEventSource-enum">Qt.MouseEventSynthesizedByQt</a> - Indicates that the mouse event was synthesized from an unhandled touch or tablet event by Qt.</li>
<li><a href="../qtcore/qt.html#MouseEventSource-enum">Qt.MouseEventSynthesizedByApplication</a> - Indicates that the mouse event was synthesized by the application. This allows distinguishing application-generated mouse events from the ones that are coming from the system or are synthesized by Qt.</li>
</ul>
<p>For example, to react only to events which come from an actual mouse:</p>
<pre class="qml">

  <span class="type"><a href="qml-qtquick-mousearea.html">MouseArea</a></span> {
      <span class="name">onPressed</span>: <span class="keyword">if</span> (<span class="name">mouse</span>.<span class="name">source</span> <span class="operator">!==</span> <span class="name">Qt</span>.<span class="name">MouseEventNotSynthesized</span>) {
          <span class="name">mouse</span>.<span class="name">accepted</span> <span class="operator">=</span> <span class="number">false</span>
      }

      <span class="name">onClicked</span>: <span class="name">doSomething</span>()
  }

</pre>
<p>If the handler for the press event rejects the event, it will be propagated further, and then another Item underneath can handle synthesized events from touchscreens. For example, if a Flickable is used underneath (and the <a href="qml-qtquick-mousearea.html">MouseArea</a> is not a child of the Flickable), it can be useful for the <a href="qml-qtquick-mousearea.html">MouseArea</a> to handle genuine mouse events in one way, while allowing touch events to fall through to the Flickable underneath, so that the ability to flick on a touchscreen is retained. In that case the ability to drag the Flickable via mouse would be lost, but it does not prevent Flickable from receiving mouse wheel events.</p>
<p>This property was introduced in  Qt 5.7.</p>
</div></div><!-- @@@source -->
<br/>
<!-- $$$wasHeld -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="wasHeld-prop">
<td class="tblQmlPropNode"><p>
<a name="wasHeld-prop"></a><span class="name">wasHeld</span> : <span class="type"><a href="../qtqml/qml-bool.html">bool</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>This property is true if the mouse button has been held pressed longer than the threshold (800ms).</p>
</div></div><!-- @@@wasHeld -->
<br/>
<!-- $$$x -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="x-prop">
<td class="tblQmlPropNode"><p>
<a name="x-prop"></a><span class="name">x</span> : <span class="type"><a href="../qtqml/qml-real.html">real</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>These properties hold the coordinates of the position supplied by the mouse event.</p>
</div></div><!-- @@@x -->
<br/>
<!-- $$$y -->
<div class="qmlitem"><div class="qmlproto">
<div class="table"><table class="qmlname">
<tr valign="top" class="odd" id="y-prop">
<td class="tblQmlPropNode"><p>
<a name="y-prop"></a><span class="name">y</span> : <span class="type"><a href="../qtqml/qml-real.html">real</a></span></p></td></tr>
</table></div>
</div><div class="qmldoc"><p>These properties hold the coordinates of the position supplied by the mouse event.</p>
</div></div><!-- @@@y -->
<br/>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
